0d5f8b87507d95d967c1e6827d057b6e0819f555,source/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java,CreateFromUsageUtils,addMemberInfo,#PsiMember[]#PsiElement#List#PsiElementFactory#,577
Before Change
PsiElement place,
List<ExpectedTypeInfo[]> types,
PsiElementFactory factory) {
if (members.length > MAX_GUESSED_MEMBERS_COUNT) return;
List<ExpectedTypeInfo> l = new ArrayList<ExpectedTypeInfo>();
PsiManager manager = place.getManager();
ExpectedTypesProvider provider = ExpectedTypesProvider.getInstance(manager.getProject());
for (PsiMember member : members) {
PsiClass aClass = member.getContainingClass();
if (manager.getResolveHelper().isAccessible(aClass, place, null)) {
if (!(aClass instanceof PsiAnonymousClass)) {
PsiClassType type = factory.createType(aClass);
l.add(provider.createInfo(type, ExpectedTypeInfo.TYPE_OR_SUBTYPE, type, TailType.NONE));
}
}
After Change
List<ExpectedTypeInfo> l = new ArrayList<ExpectedTypeInfo>();
PsiManager manager = expression.getManager();
ExpectedTypesProvider provider = ExpectedTypesProvider.getInstance(manager.getProject());
for (int i = 0; i < Math.min(MAX_GUESSED_MEMBERS_COUNT, members.length); i++) {
PsiMember member = members[i];
PsiClass aClass = member.getContainingClass();
if (aClass instanceof PsiAnonymousClass) continue;
if (manager.getResolveHelper().isAccessible(aClass, expression, null)) {
PsiClassType type;
final PsiElement pparent = expression.getParent().getParent();
if (pparent instanceof PsiMethodCallExpression) {
PsiSubstitutor substitutor = ExpectedTypeUtil.inferSubstitutor(((PsiMethod)member), (PsiMethodCallExpression)pparent, false);
if (substitutor == null) {
type = factory.createType(aClass);
} else {
type = factory.createType(aClass, substitutor);
}